console.log(Object.prototype.toString({}))                               // "[object Object]"
console.log(Object.prototype.toString.call({}))                  // 同上结果，加上call也ok

console.log(Object.prototype.toString.call(1))                   // "[object Number]"
console.log(Object.prototype.toString.call('1'))                // "[object String]"

console.log(Object.prototype.toString.call(true))               // "[object Boolean]"
console.log(Object.prototype.toString.call(function () {}))     // "[object Function]"
console.log(Object.prototype.toString.call(null))               //"[object Null]"
console.log(Object.prototype.toString.call(undefined))          //"[object Undefined]"
console.log(Object.prototype.toString.call(/123/g))             //"[object RegExp]"
console.log(Object.prototype.toString.call(new Date()))                //"[object Date]"
console.log(Object.prototype.toString.call([]))                 //"[object Array]"


//v8引擎环境下才可以
// Object.prototype.toString.call(document)                             //"[object HTMLDocument]"
// Object.prototype.toString.call(window)                                //"[object Window]"



